Synthesis Legacy
synthesis-legacy (VMID 121, 10.0.0.21) runs the older ABAIR speech-synthesis API. It exists to keep that stack alive: it was moved here from an old VM (synthesis, 10.0.0.5) that was never managed as code.
| Playbook | ansible/hetzner-main/setup-synthesis-legacy.yml |
| Compose file | ansible/hetzner-main/synthesis-legacy-apps/docker-compose.yml |
| App directory | /opt/apps/synthesis-legacy |
| Make targets | setup-synthesis-legacy, update-synthesis-legacy, enroll-wazuh-synthesis-legacy |
| Secrets | Webserver htpasswd admin (for Alloy) |
synthesisThis is the older abair-python code base. The newer synthesis-production-server runs on Amergin and serves api.abair.ie/v4/synthesis.
Containers
All three use host networking and call each other on localhost, as they did on the old VM.
| Container | Port | Purpose |
|---|---|---|
abair-api | 8002 | The API itself (webapi.abair_direct_joblib:app). Waits until the other two are up. |
abair-piper | 8001 | Piper voice synthesis. Memory limit 12 GB, because it leaks memory: under heavy traffic it hits the limit, is killed and restarted, and requests fail while it reloads. Its voice models are mounted read-only from piper-synthesis/models/. |
abair-ltsserver | 2029 | Letter-to-sound (LTS) server. |
Who uses it
This stack is live production, not an archive:
synthesis.abair.ie/api/,/piper/and/lts/www.abair.ie/api2/andold.abair.ie/api2/- the legacy v3 API (
abair-apion services-user), which calls10.0.0.21:8002server-to-server
How it's deployed
There is no CI and no registry image. The playbook:
- copies three repositories with rsync, from the admin's machine at
/home/john/Documents/abair/synthesis-legacy-repos/(abair-python,piper-synthesis,ltsserver-rest); - stops if
piper-synthesis/models/is missing or empty (the models were copied by hand from the old VM and aren't in any repository); - builds the images on the VM and recreates the containers (
docker compose build, thenup -d --force-recreate).
The source path is fixed to one admin's home directory, and the make container can't see it. rsync also isn't in the tooling image. So make setup-synthesis-legacy and make update-synthesis-legacy currently only work if run outside the container, from that machine. The source repos aren't in Gitea yet.
Firewall
No UFW rules are configured on this VM.